package com.pubinfo.passbook.common.model.bo.contract;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * @Author litiewang
 * @Date 2022/6/21 9:12
 * @Version 1.0
 */
@NoArgsConstructor
@Data
public class OrderDetailsResult {
  
  @JSONField(name = "RESULTMSG")
  private String resultmsg;
  @JSONField(name = "RESULTCODE")
  private String resultcode;
  @JSONField(name = "resultObject")
  private ResultObjectDTO resultObject;
  
  @NoArgsConstructor
  @Data
  public static class ResultObjectDTO {
    @JSONField(name = "acceptDate")
    private String acceptDate;
    @JSONField(name = "acceptLanId")
    private Integer acceptLanId;
    @JSONField(name = "acceptRegionId")
    private Integer acceptRegionId;
    @JSONField(name = "actType")
    private Object actType;
    @JSONField(name = "addressLanId")
    private Object addressLanId;
    @JSONField(name = "addressRegionId")
    private Object addressRegionId;
    @JSONField(name = "authType")
    private String authType;
    @JSONField(name = "cacheStatus")
    private Object cacheStatus;
    @JSONField(name = "createDate")
    private String createDate;
    @JSONField(name = "createOrgId")
    private Integer createOrgId;
    @JSONField(name = "createOrgName")
    private String createOrgName;
    @JSONField(name = "createPost")
    private Integer createPost;
    @JSONField(name = "createPostName")
    private String createPostName;
    @JSONField(name = "createStaff")
    private Integer createStaff;
    @JSONField(name = "custId")
    private Integer custId;
    @JSONField(name = "custName")
    private String custName;
    @JSONField(name = "custNumber")
    private String custNumber;
    @JSONField(name = "custOrderId")
    private Integer custOrderId;
    @JSONField(name = "custOrderNbr")
    private String custOrderNbr;
    @JSONField(name = "custOrderType")
    private String custOrderType;
    @JSONField(name = "errorMsg")
    private Object errorMsg;
    @JSONField(name = "extCustOrderId")
    private Object extCustOrderId;
    @JSONField(name = "extOrderNbr")
    private String extOrderNbr;
    @JSONField(name = "mainOfferOrderItems")
    private Object mainOfferOrderItems;
    @JSONField(name = "mainProdOrderItems")
    private List<MainProdOrderItemsDTO> mainProdOrderItems;
    @JSONField(name = "operType")
    private String operType;
    @JSONField(name = "ordDevStaffInfos")
    private List<OrdDevStaffInfosDTO> ordDevStaffInfos;
    @JSONField(name = "ordPayMethod")
    private Integer ordPayMethod;
    @JSONField(name = "orderAttrs")
    private List<OrderAttrsDTO> orderAttrs;
    @JSONField(name = "orderHandlerDtos")
    private Object orderHandlerDtos;
    @JSONField(name = "orderHandlerId")
    private Object orderHandlerId;
    @JSONField(name = "orderSource")
    private String orderSource;
    @JSONField(name = "planActDate")
    private Object planActDate;
    @JSONField(name = "preHandleFlag")
    private String preHandleFlag;
    @JSONField(name = "primaryKey")
    private Object primaryKey;
    @JSONField(name = "priority")
    private Object priority;
    @JSONField(name = "remark")
    private Object remark;
    @JSONField(name = "sourceOrderId")
    private Object sourceOrderId;
    @JSONField(name = "statusCd")
    private String statusCd;
    @JSONField(name = "statusCdName")
    private String statusCdName;
    @JSONField(name = "statusDate")
    private String statusDate;
    @JSONField(name = "sysSource")
    private Long sysSource;
    @JSONField(name = "sysSourceName")
    private String sysSourceName;
    @JSONField(name = "tmpOrdOneTimeFeeDtos")
    private List<TmpOrdOneTimeFeeDtosDTO> tmpOrdOneTimeFeeDtos;
    @JSONField(name = "updateDate")
    private String updateDate;
    @JSONField(name = "updateOrg")
    private Object updateOrg;
    @JSONField(name = "updatePost")
    private Object updatePost;
    @JSONField(name = "updateStaff")
    private Integer updateStaff;
    @JSONField(name = "verNum")
    private Integer verNum;
    
    @NoArgsConstructor
    @Data
    public static class MainProdOrderItemsDTO {
      @JSONField(name = "acceptDate")
      private String acceptDate;
      @JSONField(name = "acceptLanId")
      private Integer acceptLanId;
      @JSONField(name = "acceptRegionId")
      private Integer acceptRegionId;
      @JSONField(name = "actType")
      private Object actType;
      @JSONField(name = "applyObjSpec")
      private Integer applyObjSpec;
      @JSONField(name = "authType")
      private String authType;
      @JSONField(name = "belongCustId")
      private Integer belongCustId;
      @JSONField(name = "belongLanId")
      private Integer belongLanId;
      @JSONField(name = "cacheStatus")
      private Object cacheStatus;
      @JSONField(name = "choiceOfferOrderItems")
      private Object choiceOfferOrderItems;
      @JSONField(name = "contactsInfos")
      private Object contactsInfos;
      @JSONField(name = "createDate")
      private String createDate;
      @JSONField(name = "createOrgId")
      private Integer createOrgId;
      @JSONField(name = "createPost")
      private Integer createPost;
      @JSONField(name = "createStaff")
      private Integer createStaff;
      @JSONField(name = "custOrderId")
      private Integer custOrderId;
      @JSONField(name = "extOrderItemId")
      private Object extOrderItemId;
      @JSONField(name = "objId")
      private Integer objId;
      @JSONField(name = "openDate")
      private Object openDate;
      @JSONField(name = "operType")
      private String operType;
      @JSONField(name = "ordAccNumRels")
      private Object ordAccNumRels;
      @JSONField(name = "ordProdInst")
      private OrdProdInstDTO ordProdInst;
      @JSONField(name = "ordProdInstAttrs")
      private Object ordProdInstAttrs;
      @JSONField(name = "ordProdInstExtAttrInfos")
      private Object ordProdInstExtAttrInfos;
      @JSONField(name = "ordProdInstStateInfos")
      private Object ordProdInstStateInfos;
      @JSONField(name = "orderHandlerId")
      private Object orderHandlerId;
      @JSONField(name = "orderItemAttrs")
      private Object orderItemAttrs;
      @JSONField(name = "orderItemCd")
      private String orderItemCd;
      @JSONField(name = "orderItemId")
      private Integer orderItemId;
      @JSONField(name = "orderItemNbr")
      private Object orderItemNbr;
      @JSONField(name = "orderSource")
      private Object orderSource;
      @JSONField(name = "parOrderItemId")
      private Object parOrderItemId;
      @JSONField(name = "preHandleFlag")
      private String preHandleFlag;
      @JSONField(name = "primaryKey")
      private Object primaryKey;
      @JSONField(name = "priority")
      private Object priority;
      @JSONField(name = "regionId")
      private Integer regionId;
      @JSONField(name = "remark")
      private Object remark;
      @JSONField(name = "serviceOfferId")
      private Long serviceOfferId;
      @JSONField(name = "statusCd")
      private String statusCd;
      @JSONField(name = "statusDate")
      private String statusDate;
      @JSONField(name = "subProdOrderItems")
      private Object subProdOrderItems;
      @JSONField(name = "tmpOrdOneTimeFeeDtos")
      private Object tmpOrdOneTimeFeeDtos;
      @JSONField(name = "updateDate")
      private String updateDate;
      @JSONField(name = "updateOrg")
      private Object updateOrg;
      @JSONField(name = "updatePost")
      private Object updatePost;
      @JSONField(name = "updateStaff")
      private Integer updateStaff;
      @JSONField(name = "verNum")
      private Integer verNum;
      
      @NoArgsConstructor
      @Data
      public static class OrdProdInstDTO {
        @JSONField(name = "accNum")
        private String accNum;
        @JSONField(name = "accProdInstId")
        private Integer accProdInstId;
        @JSONField(name = "account")
        private Object account;
        @JSONField(name = "acctCd")
        private String acctCd;
        @JSONField(name = "acctName")
        private String acctName;
        @JSONField(name = "actDate")
        private Object actDate;
        @JSONField(name = "actType")
        private Object actType;
        @JSONField(name = "addressDesc")
        private Object addressDesc;
        @JSONField(name = "addressId")
        private Object addressId;
        @JSONField(name = "addressLanId")
        private Object addressLanId;
        @JSONField(name = "addressRegionId")
        private Object addressRegionId;
        @JSONField(name = "beginRentDate")
        private Object beginRentDate;
        @JSONField(name = "busiModDate")
        private String busiModDate;
        @JSONField(name = "cacheStatus")
        private Object cacheStatus;
        @JSONField(name = "circuitNum")
        private Object circuitNum;
        @JSONField(name = "createDate")
        private String createDate;
        @JSONField(name = "createOrgId")
        private Integer createOrgId;
        @JSONField(name = "createStaff")
        private Integer createStaff;
        @JSONField(name = "crmRowId")
        private String crmRowId;
        @JSONField(name = "custOrderId")
        private Integer custOrderId;
        @JSONField(name = "exchId")
        private Object exchId;
        @JSONField(name = "extProdInstId")
        private Object extProdInstId;
        @JSONField(name = "firstFinishDate")
        private Object firstFinishDate;
        @JSONField(name = "grpProdNbr")
        private String grpProdNbr;
        @JSONField(name = "idNumber")
        private String idNumber;
        @JSONField(name = "lanId")
        private Integer lanId;
        @JSONField(name = "mainOfferId")
        private Object mainOfferId;
        @JSONField(name = "mainOfferInstId")
        private Object mainOfferInstId;
        @JSONField(name = "old")
        private Object old;
        @JSONField(name = "oldRowId")
        private Object oldRowId;
        @JSONField(name = "operType")
        private String operType;
        @JSONField(name = "orderItemId")
        private Integer orderItemId;
        @JSONField(name = "owernCustName")
        private String owernCustName;
        @JSONField(name = "ownerCustId")
        private Integer ownerCustId;
        @JSONField(name = "paymentModeCd")
        private String paymentModeCd;
        @JSONField(name = "paymentModeCdName")
        private String paymentModeCdName;
        @JSONField(name = "pointOwnerId")
        private Object pointOwnerId;
        @JSONField(name = "primaryKey")
        private Object primaryKey;
        @JSONField(name = "prodId")
        private Integer prodId;
        @JSONField(name = "prodInstId")
        private Integer prodInstId;
        @JSONField(name = "prodInstPwd")
        private Object prodInstPwd;
        @JSONField(name = "prodName")
        private String prodName;
        @JSONField(name = "prodNbr")
        private String prodNbr;
        @JSONField(name = "prodUseType")
        private String prodUseType;
        @JSONField(name = "regionId")
        private Integer regionId;
        @JSONField(name = "regionName")
        private String regionName;
        @JSONField(name = "remark")
        private Object remark;
        @JSONField(name = "rowId")
        private Integer rowId;
        @JSONField(name = "serviceOfferId")
        private Long serviceOfferId;
        @JSONField(name = "serviceOfferName")
        private String serviceOfferName;
        @JSONField(name = "snnoNum")
        private Object snnoNum;
        @JSONField(name = "statusCd")
        private String statusCd;
        @JSONField(name = "statusDate")
        private String statusDate;
        @JSONField(name = "stopRentDate")
        private Object stopRentDate;
        @JSONField(name = "toAddressDesc")
        private Object toAddressDesc;
        @JSONField(name = "toCircuitNum")
        private Object toCircuitNum;
        @JSONField(name = "updateDate")
        private String updateDate;
        @JSONField(name = "updateStaff")
        private Integer updateStaff;
        @JSONField(name = "useCertNum")
        private Object useCertNum;
        @JSONField(name = "useCertType")
        private Object useCertType;
        @JSONField(name = "useCertTypeName")
        private Object useCertTypeName;
        @JSONField(name = "useCustId")
        private Integer useCustId;
        @JSONField(name = "useCustName")
        private Object useCustName;
        @JSONField(name = "verNum")
        private Integer verNum;
      }
    }
    
    @NoArgsConstructor
    @Data
    public static class OrdDevStaffInfosDTO {
      @JSONField(name = "actType")
      private Object actType;
      @JSONField(name = "alesstaffCode")
      private Object alesstaffCode;
      @JSONField(name = "attrId")
      private Integer attrId;
      @JSONField(name = "cacheStatus")
      private Object cacheStatus;
      @JSONField(name = "createDate")
      private String createDate;
      @JSONField(name = "createStaff")
      private Integer createStaff;
      @JSONField(name = "custOrderId")
      private Integer custOrderId;
      @JSONField(name = "devOrgId")
      private Integer devOrgId;
      @JSONField(name = "devStaffId")
      private Integer devStaffId;
      @JSONField(name = "devStaffInfoId")
      private Integer devStaffInfoId;
      @JSONField(name = "devStaffType")
      private String devStaffType;
      @JSONField(name = "devStaffTypeName")
      private Object devStaffTypeName;
      @JSONField(name = "objId")
      private Integer objId;
      @JSONField(name = "objType")
      private String objType;
      @JSONField(name = "oldRowId")
      private Object oldRowId;
      @JSONField(name = "operType")
      private String operType;
      @JSONField(name = "orderItemId")
      private Integer orderItemId;
      @JSONField(name = "primaryKey")
      private Object primaryKey;
      @JSONField(name = "remark")
      private Object remark;
      @JSONField(name = "rowId")
      private Integer rowId;
      @JSONField(name = "salePostName")
      private Object salePostName;
      @JSONField(name = "staffCode")
      private String staffCode;
      @JSONField(name = "staffHrNbr")
      private Object staffHrNbr;
      @JSONField(name = "staffName")
      private String staffName;
      @JSONField(name = "staffSubType")
      private Object staffSubType;
      @JSONField(name = "statusCd")
      private String statusCd;
      @JSONField(name = "statusDate")
      private String statusDate;
      @JSONField(name = "updateDate")
      private String updateDate;
      @JSONField(name = "updateStaff")
      private Integer updateStaff;
      @JSONField(name = "verNum")
      private Integer verNum;
    }
    
    @NoArgsConstructor
    @Data
    public static class OrderAttrsDTO {
      @JSONField(name = "actType")
      private Object actType;
      @JSONField(name = "attrId")
      private Long attrId;
      @JSONField(name = "attrName")
      private String attrName;
      @JSONField(name = "attrNbr")
      private String attrNbr;
      @JSONField(name = "attrValue")
      private String attrValue;
      @JSONField(name = "attrValueId")
      private Object attrValueId;
      @JSONField(name = "cacheStatus")
      private Object cacheStatus;
      @JSONField(name = "createDate")
      private String createDate;
      @JSONField(name = "createStaff")
      private Integer createStaff;
      @JSONField(name = "custOrderId")
      private Integer custOrderId;
      @JSONField(name = "operType")
      private String operType;
      @JSONField(name = "orderAttrId")
      private Integer orderAttrId;
      @JSONField(name = "primaryKey")
      private Object primaryKey;
      @JSONField(name = "remark")
      private String remark;
      @JSONField(name = "statusCd")
      private String statusCd;
      @JSONField(name = "statusDate")
      private String statusDate;
      @JSONField(name = "updateDate")
      private String updateDate;
      @JSONField(name = "updateStaff")
      private Object updateStaff;
      @JSONField(name = "verNum")
      private Integer verNum;
    }
    
    @NoArgsConstructor
    @Data
    public static class TmpOrdOneTimeFeeDtosDTO {
      @JSONField(name = "actTotalMoney")
      private Object actTotalMoney;
      @JSONField(name = "actType")
      private Object actType;
      @JSONField(name = "actualAmount")
      private Integer actualAmount;
      @JSONField(name = "attrId")
      private Object attrId;
      @JSONField(name = "attrValue")
      private Object attrValue;
      @JSONField(name = "attrValueId")
      private Object attrValueId;
      @JSONField(name = "cacheStatus")
      private Object cacheStatus;
      @JSONField(name = "coverageAmount")
      private Object coverageAmount;
      @JSONField(name = "createDate")
      private String createDate;
      @JSONField(name = "createStaff")
      private Integer createStaff;
      @JSONField(name = "custOrderId")
      private Integer custOrderId;
      @JSONField(name = "custOrderUUID")
      private Object custOrderUUID;
      @JSONField(name = "customizeAmount")
      private Object customizeAmount;
      @JSONField(name = "dictContractCode")
      private Object dictContractCode;
      @JSONField(name = "feeGroupId")
      private Integer feeGroupId;
      @JSONField(name = "feeItemCode")
      private Object feeItemCode;
      @JSONField(name = "feeItemId")
      private Integer feeItemId;
      @JSONField(name = "feeItemLineType")
      private Object feeItemLineType;
      @JSONField(name = "feeItemType")
      private String feeItemType;
      @JSONField(name = "feeObjectType")
      private String feeObjectType;
      @JSONField(name = "lastAmount")
      private String lastAmount;
      @JSONField(name = "objectInstId")
      private Integer objectInstId;
      @JSONField(name = "objectInstUUID")
      private Object objectInstUUID;
      @JSONField(name = "objectType")
      private String objectType;
      @JSONField(name = "oneTimeFeeId")
      private Integer oneTimeFeeId;
      @JSONField(name = "oneTimeFeeUUID")
      private Object oneTimeFeeUUID;
      @JSONField(name = "orderItemId")
      private Integer orderItemId;
      @JSONField(name = "orderItemUUID")
      private Object orderItemUUID;
      @JSONField(name = "primaryKey")
      private Object primaryKey;
      @JSONField(name = "prodName")
      private String prodName;
      @JSONField(name = "prodNbr")
      private String prodNbr;
      @JSONField(name = "realAmount")
      private Object realAmount;
      @JSONField(name = "receivalbeAmount")
      private Integer receivalbeAmount;
      @JSONField(name = "reduceAmount")
      private Object reduceAmount;
      @JSONField(name = "relOneFeeId")
      private Integer relOneFeeId;
      @JSONField(name = "remark")
      private String remark;
      @JSONField(name = "standardAmount")
      private Object standardAmount;
      @JSONField(name = "statusCd")
      private String statusCd;
      @JSONField(name = "statusDate")
      private String statusDate;
      @JSONField(name = "updateDate")
      private String updateDate;
      @JSONField(name = "updateStaff")
      private Integer updateStaff;
      @JSONField(name = "verNum")
      private Integer verNum;
    }
  }
}
